package com.hkts.management.model.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.core.enums.IEnum;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

@Getter
public enum OrderStatusEnum implements IEnum<Integer> {


    CONFIRMED(0,"待确认"),//司机
    DRAFT_CONTRACT(1,"合同待起草"),//货主
    SIGN_CONTRACT(2,"待签合同"),//货主
    REFUSED_CONTRACT(3,"合同已拒绝"),//司机
    TRANSPORT(4,"运输中"),//司机
    CONFIRMED_GOODS(5,"待确认收货"),//司机
    EVALUATE(6,"待评价"),//货主
    DONE(7,"已完成"),//货主+司机
    REFUSE_CANCEL(8,"拒绝了司机的报名，运单取消"),//货主
    DRIVER_CANCEL(9,"司机已取消运单"),//司机
    OWNER_CANCEL(10,"已取消运单"),//货主
    DRIVER_CONFIRMED(11,"指定了司机的承运");//货主
    @EnumValue
    private Integer value;
    private String desc;

    OrderStatusEnum(Integer value, String desc) {
        this.value=value;
        this.desc=desc;
    }

    @Override
    public Integer getValue() {
        return this.value;
    }

    @JsonValue
    public String toString() {
        return this.desc;
    }
    public static OrderStatusEnum getResultEnum(int code) {
        for (OrderStatusEnum type : OrderStatusEnum.values()) {
            if (type.getValue() == code) {
                return type;
            }
        }
        return null;
    }

    public static int getResultEnum(String message) {
        for (OrderStatusEnum type : OrderStatusEnum.values()) {
            if (type.getDesc().equals(message)) {
                return type.getValue();
            }
        }
        return -1;
    }

//    /**
//     * 司机报名成功，待确认
//     */
//    public static final int CONFIRMED_CONSTANT = 0;
//    /**
//     * 待货主起草合同
//     */
//    public static final int DRAFT_CONTRACT_CONSTANT = 1;
//    /**
//     * 待司机签订合同
//     */
//    public static final int SIGN_CONTRACT_CONSTANT = 2;
//    /**
//     * 司机已拒绝合同
//     */
//    public static final int REFUSED_CONTRACT_CONSTANT = 3;
//    /**
//     * 运输中
//     */
//    public static final int TRANSPORT_CONSTANT = 4;
//    /**
//     * 待货主确认收货
//     */
//    public static final int CONFIRMED_GOODS_CONSTANT = 5;
//    /**
//     * 待评价
//     */
//    public static final int EVALUATE_CONSTANT = 6;
//    /**
//     * 已完成
//     */
//    public static final int DONE_CONSTANT = 7;
//    /**
//     * 货主未确认，运单取消
//     */
//    public static final int REFUSE_CANCEL_CONSTANT = 8;
//    /**
//     * 司机已取消运单
//     */
//    public static final int DRIVER_CANCEL_CONSTANT = 9;
//    /**
//     * 货主已取消运单
//     */
//    public static final int OWNER_CANCEL_CONSTANT = 10;
//    /**
//     * 货主已指定待司机确认
//     */
//    public static final int OWNER_APPOINT_CONSTANT = 11;

}
